package com.lin.carbon.service.impl;

import com.lin.carbon.entity.SysAccount;
import com.lin.carbon.mapper.SysAccountMapper;
import com.lin.carbon.service.SysAccountService;
import com.lin.carbon.utils.JwtUtils;
import com.lin.carbon.utils.Md5Utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 系统账户服务实现类，实现系统账户相关业务逻辑
 */
@Service
public class SysAccountServiceImpl implements SysAccountService {

    // 注入系统账户 Mapper，用于数据库操作
    @Autowired
    private SysAccountMapper sysAccountMapper;
    // 注入 JWT 工具类，用于生成和验证 JWT 令牌
    @Autowired
    private JwtUtils jwtUtils;

    /**
     * 处理用户登录逻辑
     * @param accountName 用户账户名
     * @param password 用户密码
     * @return 若登录成功，返回 JWT 令牌；否则返回 null
     */
    @Override
    public String login(String accountName, String password) {
        // 根据账户名从数据库中查询用户信息
        SysAccount account = sysAccountMapper.selectByAccountName(accountName);
        // 若用户存在且密码匹配（密码需经过 MD5 加密后比对）
        if (account != null && account.getPassword().equals(Md5Utils.md5(password))) {
            // 登录成功，调用 JWT 工具类生成 JWT 令牌
            return jwtUtils.generateToken(accountName);
        }
        // 登录失败，返回 null
        return null;
    }
}